package com.example.hjlquickstartdemo.service;

import com.example.hjlquickstartdemo.dao.entity.User;
import com.example.hjlquickstartdemo.pojo.dto.UserDto;
import com.example.hjlquickstartdemo.pojo.query.UserQuery;
import com.example.hjlquickstartdemo.pojo.vo.CommonPage;
import com.example.hjlquickstartdemo.pojo.vo.ResultResponse;
import org.springframework.web.bind.annotation.RequestBody;

import javax.validation.Valid;
import javax.validation.constraints.NotNull;

/**
 * 服务接口
 * @author HeJiaLe
 * @date 2023/07/17 11:21
 **/
public interface UserService{
    /**
     *  界面调用接口增加用户
     *  业务异常规则  身份证号不可重复
     * @param userDto 用户信息
     * @return true成功 false失败
     */
    Boolean add(UserDto userDto);
    /**
     *  返回特定身份证id的用户 有且只有一个多个的时候触发异常
     * @param citizenId 身份证id
     * @param exclusiveId 排除的主键id
     * @return 用户对象
     */
    User findUserByCitizenId(String citizenId, Long exclusiveId );

    /**
     * 根据id删除用户
     * @param id
     * @return  true成功 false失败
     */
   Boolean remove(Long id);

    /**
     * 更新用户信息
     * @param userDto 用户信息包含 id
     * @return true成功 false失败
     */
    Boolean update( UserDto userDto);
    /**
     * 界面调用接口查询用户信息
     * @param basicUserQuery 用户信息包含 id
     * @return true成功 false失败
     */
    CommonPage<UserDto> search(UserQuery basicUserQuery);
    /**
     * 界面调用接口  根据id查询用户
     * @param  id 主键id
     * @return true成功 false失败
     */
    UserDto findById(Long id);
}
